package com.c2c.service;

import com.c2c.po.Admin;
import com.c2c.po.User;

import java.util.List;

/**
 * 账户业务
 */
public interface AccountService {

    /**
     * 显示所有用户
     *
     * @return 所有用户信息
     */
    List<User> findAllUser();

    /**
     * 根据用户账号找寻对应用户
     *
     * @param userAccount 用户账号
     * @return 查找到的用户信息
     */
    User findByUserAccount(int userAccount);

    /**
     * 根据传入的用户信息更改用户信息
     *
     * @param user 修改后的用户信息
     */
    void updateUserByUserAccount(User user);

    /**
     * 根据传入的用户状态和用户编号修改用户帐号状态
     *
     * @param userState   用户状态ID(非是枚举类)
     * @param userAccount 用户账号
     */
    void updateUserStateByUserAccount(int userState, int userAccount);

    /**
     * 根据传入封装的内容用户充值
     *
     * @param user 封装好的用户信息
     */
    void updateUserMoneyByUserAccount(User user);

    /**
     * 根据传入信息注册一个User用户
     *
     * @param user 封装好的个人信息
     */
    void insertUser(User user);

    /**
     * 根据管理员ID查找到对应管理员
     *
     * @param adminId 管理员账号
     * @return 查找到的管理员信息
     */
    Admin findByAdminId(String adminId);

    /**
     * 根据封装好的Admin修改原本数据库中的数据
     *
     * @param admin 封装好的User
     */
    void updateAdminByAdminId(Admin admin);
}
